@rsc-labs/medusa-store-analytics-v2
Version:
Get analytics data about your store
58 lines • 7.77 kB
JavaScript
;
/*
* Copyright 2024 RSC-Labs, https://rsoftcon.com/
*
* MIT License
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.GET = void 0;
const utils_1 = require("@medusajs/utils");
const store_analytics_1 = require("../../../../modules/store-analytics");
const GET = async (req, res) => {
const kind = req.params.kind;
const dateRangeFrom = req.query.dateRangeFrom;
const dateRangeTo = req.query.dateRangeTo;
const dateRangeFromCompareTo = req.query.dateRangeFromCompareTo;
const dateRangeToCompareTo = req.query.dateRangeToCompareTo;
const orderStatusesFromQuery = req.query.orderStatuses;
const orderStatuses = orderStatusesFromQuery !== undefined ?
orderStatusesFromQuery.map(status => utils_1.OrderStatus[status.toUpperCase()]).filter(orderStatus => orderStatus !== undefined) : [];
let result;
const storeAnalyticsModuleService = req.scope.resolve(store_analytics_1.STORE_ANALYTICS_MODULE);
try {
switch (kind) {
case 'history':
const currencyCode = req.query.currencyCode;
if (currencyCode) {
result = await storeAnalyticsModuleService.getOrdersSales(orderStatuses, currencyCode, dateRangeFrom ? new Date(Number(dateRangeFrom)) : undefined, dateRangeTo ? new Date(Number(dateRangeTo)) : undefined, dateRangeFromCompareTo ? new Date(Number(dateRangeFromCompareTo)) : undefined, dateRangeToCompareTo ? new Date(Number(dateRangeToCompareTo)) : undefined);
}
break;
case 'sales-channels-popularity':
result = await storeAnalyticsModuleService.getSalesChannelsPopularity(orderStatuses, dateRangeFrom ? new Date(Number(dateRangeFrom)) : undefined, dateRangeTo ? new Date(Number(dateRangeTo)) : undefined, dateRangeFromCompareTo ? new Date(Number(dateRangeFromCompareTo)) : undefined, dateRangeToCompareTo ? new Date(Number(dateRangeToCompareTo)) : undefined);
break;
case 'regions-popularity':
result = await storeAnalyticsModuleService.getSalesRegionsPopularity(orderStatuses, dateRangeFrom ? new Date(Number(dateRangeFrom)) : undefined, dateRangeTo ? new Date(Number(dateRangeTo)) : undefined, dateRangeFromCompareTo ? new Date(Number(dateRangeFromCompareTo)) : undefined, dateRangeToCompareTo ? new Date(Number(dateRangeToCompareTo)) : undefined);
break;
case 'refunds':
const refundsCurrencyCode = req.query.currencyCode;
if (refundsCurrencyCode) {
result = await storeAnalyticsModuleService.getSalesRefunds(refundsCurrencyCode, dateRangeFrom ? new Date(Number(dateRangeFrom)) : undefined, dateRangeTo ? new Date(Number(dateRangeTo)) : undefined, dateRangeFromCompareTo ? new Date(Number(dateRangeFromCompareTo)) : undefined, dateRangeToCompareTo ? new Date(Number(dateRangeToCompareTo)) : undefined);
}
break;
}
res.status(200).json({
analytics: result
});
}
catch (error) {
throw new utils_1.MedusaError(utils_1.MedusaErrorTypes.DB_ERROR, error.message);
}
};
exports.GET = GET;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3NhbGVzLWFuYWx5dGljcy9ba2luZF0vcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7O0dBVUc7OztBQU1ILDJDQUE0RTtBQUM1RSx5RUFBNkU7QUFHdEUsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUN0QixHQUFrQixFQUNsQixHQUFtQixFQUNuQixFQUFFO0lBRUYsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDN0IsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUM7SUFDOUMsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUM7SUFDMUMsTUFBTSxzQkFBc0IsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDO0lBQ2hFLE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQztJQUM1RCxNQUFNLHNCQUFzQixHQUFhLEdBQUcsQ0FBQyxLQUFLLENBQUMsYUFBeUIsQ0FBQztJQUU3RSxNQUFNLGFBQWEsR0FBa0Isc0JBQXNCLEtBQUssU0FBUyxDQUFDLENBQUM7UUFDekUsc0JBQXNCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsbUJBQVcsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFdBQVcsS0FBSyxTQUFTLENBQUMsQ0FBQSxDQUFDLENBQUMsRUFBRSxDQUFDO0lBRS9ILElBQUksTUFBTSxDQUFDO0lBQ1gsTUFBTSwyQkFBMkIsR0FBZ0MsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsd0NBQXNCLENBQUMsQ0FBQTtJQUUxRyxJQUFJLENBQUM7UUFDSCxRQUFRLElBQUksRUFBRSxDQUFDO1lBQ2IsS0FBSyxTQUFTO2dCQUNaLE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDO2dCQUM1QyxJQUFJLFlBQXNCLEVBQUUsQ0FBQztvQkFDM0IsTUFBTSxHQUFHLE1BQU0sMkJBQTJCLENBQUMsY0FBYyxDQUN2RCxhQUFhLEVBQ2IsWUFBc0IsRUFDdEIsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUMzRCxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQ3ZELHNCQUFzQixDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQzdFLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQzFFLENBQUM7Z0JBQ0osQ0FBQztnQkFDRCxNQUFNO1lBQ1IsS0FBSywyQkFBMkI7Z0JBQzlCLE1BQU0sR0FBRyxNQUFNLDJCQUEyQixDQUFDLDBCQUEwQixDQUNuRSxhQUFhLEVBQ2IsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUMzRCxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQ3ZELHNCQUFzQixDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQzdFLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQzFFLENBQUM7Z0JBQ0YsTUFBTTtZQUNSLEtBQUssb0JBQW9CO2dCQUN2QixNQUFNLEdBQUcsTUFBTSwyQkFBMkIsQ0FBQyx5QkFBeUIsQ0FDbEUsYUFBYSxFQUNiLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFDM0QsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUN2RCxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUM3RSxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUMxRSxDQUFDO2dCQUNGLE1BQU07WUFDUixLQUFLLFNBQVM7Z0JBQ1osTUFBTSxtQkFBbUIsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztnQkFDbkQsSUFBSSxtQkFBNkIsRUFBRSxDQUFDO29CQUNsQyxNQUFNLEdBQUcsTUFBTSwyQkFBMkIsQ0FBQyxlQUFlLENBQ3hELG1CQUE2QixFQUM3QixhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQzNELFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFDdkQsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFDN0Usb0JBQW9CLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FDMUUsQ0FBQztnQkFDSixDQUFDO2dCQUNELE1BQU07UUFDVixDQUFDO1FBQ0QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDbkIsU0FBUyxFQUFFLE1BQU07U0FDbEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixNQUFNLElBQUksbUJBQVcsQ0FDbkIsd0JBQWdCLENBQUMsUUFBUSxFQUN6QixLQUFLLENBQUMsT0FBTyxDQUNkLENBQUE7SUFDSCxDQUFDO0FBQ0gsQ0FBQyxDQUFBO0FBekVZLFFBQUEsR0FBRyxPQXlFZiJ9